/**
 * UFCG - CEEI - DSC- SI1
 * Projeto da Disciplina Sistema de Informacao 1 - 2011.1
 * 
 * Professor: Hyggo Almeida
 * 
 * Alunos: Felipe de Sousa - felipeso@lcc.ufcg.edu.br
 * 		   Matheus Sampaio - matheusss@lcc.ufcg.edu.br
 *         Henrique Florencio - henriquecf@lcc.ufcg.edu.br
 *         Claudio Cardoso - claudiocaj@lcc.ufcg.edu.br
 * 		   Julio Henrrique - juliohr@lcc.ufcg.edu.br
 * 
 */
package controller;

import exception.ExceptionAtributoInexistenteEvento;
import exception.ExceptionAtributoInvalido;
import exception.ExceptionDataInvalida;
import exception.ExceptionDataInvalidaFinalDeSemana;
import exception.ExceptionEntradaInvalida;
import exception.ExceptionEventoJaAlocado;
import exception.ExceptionEventoNaoAlocado;
import exception.ExceptionIdentificacaoInvalida;
import exception.ExceptionNaoEscalonaveis;
import exception.ExceptionSalaEventoInexistente;
import exception.ExceptionSalaIndisponivelHorario;
import exception.ExceptionSalaNaoExiste;

public class SalasAlocadasFacede {

	private GerenciadorDeSalasAlocadas genSA = GerenciadorDeSalasAlocadas
			.getInstance();

	public void alocarEvento(String idEvento, String idSala)
			throws ExceptionSalaEventoInexistente, ExceptionNaoEscalonaveis,
			ExceptionDataInvalidaFinalDeSemana, ExceptionEventoJaAlocado,
			ExceptionSalaIndisponivelHorario {

		genSA.alocarEvento(idEvento, idSala);
	}

	public void cancelarEvento(String idEvento)
			throws ExceptionSalaEventoInexistente {

		genSA.cancelarEvento(idEvento);
	}

	public void desalocarEvento(String idEvento)
			throws ExceptionEventoNaoAlocado {

		genSA.desalocarEvento(idEvento);
	}

	public String getAtributoEvento(String id, String atributo)
			throws ExceptionAtributoInexistenteEvento,
			ExceptionSalaEventoInexistente {

		return genSA.getAtributoEvento(id, atributo);
	}

	public String getAtributoSala(String id, String atributo)
			throws ExceptionAtributoInvalido, ExceptionSalaNaoExiste {

		return genSA.getAtributoSala(id, atributo);
	}

	public String localizarEvento(String atributo, String valor)
			throws ExceptionAtributoInexistenteEvento,
			ExceptionEntradaInvalida, ExceptionDataInvalida,
			ExceptionDataInvalidaFinalDeSemana, ExceptionIdentificacaoInvalida {

		return genSA.localizarEvento(atributo, valor);

	}

	public void removerSalaDoEvento(String idSala) {
		genSA.removerSalaDoEvento(idSala);
	}

	public void zeraSistema() {
		genSA.zeraSistema();
	}

	public void encerrarSistema() {
		genSA.encerrarSistema();
	}

}
